home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Technotools
/
Technotools (Chestnut CD-ROM)(1993).ISO
/
lang_c
/
tclib20
/
ibm.h
< prev
next >
Wrap
C/C++ Source or Header
|
1988-12-03
|
5KB
|
121 lines
/* TCHK 2.0 - Howard Kapustein's Turbo C library 12-3-88 */
/* Copyright (C) 1988, Howard Kapustein. All rights reserved. */
/* ibm.h - header file for IBM.C - IBM specific functions */
#ifndef IBM_HEADER
#define IBM_HEADER 1
#include <howard.h>
#ifndef IBM_HEX_ID
#define PC 0xFF
#define XT 0xFE
#define Portable_PC 0xFE
#define PCjr 0xFD
#define AT 0xFC
#define AT3x9 0xFC
#define XT286 0xFC
#define PS2_Model_50 0xFC
#define PS2_Model_60 0xFC
#define XT2 0xFB
#define PS2_Model_25 0xFA
#define PS2_Model_30 0xFA
#define PC_Convertible 0xF9
#define PS2_Model_80 0xF8
#define Compaq 0x2D
#define Compaq_Plus 0x9A
/* above are ROM_id bytes, below are machine_id codes */
#define PC_id 1
#define XT_id 2
#define Portable_PC_id 3 /* can't currently be identified */
#define PCjr_id 4
#define AT_id 5
#define AT3x9_id 6
#define XT2_id 7
#define XT286_id 8
#define PC_Convertible_id 9
#define PS2_Model_25_id 10 /* ?, see docs */
#define PS2_Model_30_id 11
#define PS2_Model_50_id 12
#define PS2_Model_60_id 13
#define PS2_Model_80_id 14
#define Unknown_id 99
#define IBM_HEX_ID 1
#endif
#ifndef MEM_STRATEGY
#define MEM_STRAT_FIRST 0 /* use first mem block large enough */
#define MEM_STRAT_BEST 1 /* use smallest mem block large enough */
#define MEM_STRAT_LAST 2 /* use high part of last usable mem block */
#define MEM_STRAT_BADDOS -1 /* using DOS earlier than 3.xx */
#define MEM_STRATEGY 1
#endif
#ifndef DISK_ID_BYTE
#define DISK_DSDD_8 0xFF /* Double-sided, 5 1/4" floppy, 8 sectors */
#define DISK_SSDD_8 0xFE /* Single-sided, 5 1/4" floppy, 8 sectors */
#define DISK_SS8_8 0xFE /* Single-sided, 8" floppy, 8 sectors */
#define DISK_DSDD_9 0xFD /* Double-sided, 5 1/4" floppy, 9 sectors */
#define DISK_SSDD_9 0xFC /* Single-sided floppy, 9 sectors */
#define DISK_DSQD_15 0xF9 /* Double-sided, 5 1/4" floppy, 15 sectors */
#define DISK_DS3_15 0xF9 /* Double-sided, 3 1/2" floppy, 9 sectors */
#define DISK_HARD 0xF8 /* Hard disk */
#define DISK_DS3_18 0xF0 /* Double-sided, 3 1/2" floppy, 18 sectors */
#define DISK_UNDEFINED 0xF0 /* undefined media type */
/* Note: if the disk is Single-sided, 8" 26 sectors,
it could have the id FE or FD */
#define DISK_INVALID 0x1 /* invalid disk specified */
#define DISK_ID_BYTE 1
#endif
#ifndef EMS_CODES
#define EMS_SUCCESS 0x00 /* success */
#define EMS_ERROR_SOFTWARE 0x80 /* error in EMM software */
#define EMS_ERROR_HARDWARE 0x81 /* malfunction in EM hardware */
#define EMS_ERROR_UNDEFINED 0x84 /* function requested not defined */
#define EMS_CODES 1
#endif
typedef struct EMSrecord {
unsigned int handle;
unsigned int totalpages;
unsigned int availpages;
byte version;
byte emserror;
};
#ifndef IBM_DEFINES
#define TIMER_TICKS *((long far *) 0x46Clu) /* Timer tick count */
#define isBREAKon() (getcbrk()==1?TRUE:FALSE)
#define setBREAK(b) setcbrk(b)
#define isVERIFYon() (getverify()==1?TRUE:FALSE)
#define setVERIFY(v) setverify(b)
#define IBM_DEFINES
#endif
/* function prototypes */
byte ROM_id(void); /* get ROM id */
char *ROM_date(void); /* get ROM date */
boolean isNetwork(void); /* is a Network installed */
boolean isExtended(void); /* is Extended memory available */
boolean iskey102(void); /* is keyboard 101/102 keys */
int Extendedtotal(void); /* total amount of Extended memory (in K) */
int machine_id(void); /* determine machine id */
boolean isBlogical(void); /* is B: physical or logical */
void beep(void); /* beep speaker */
boolean diskchanged(int drive); /* disk change detected: AT, XT2, XT286, Convertible and PS/2 only */
byte disktype(byte drive); /* type of disk (0=default, A=1, etc.) */
boolean isgameport(void); /* is game port available */
void reboot(boolean warmboot); /* reboot, warmboot vs. coldboot */
boolean isEMSavail(void); /* is EMS available */
byte getEMSstatus(void); /* get EMS status */
boolean EMMversion(byte *version); /* version or (on failure) error code */
boolean EMSpages(struct EMSrecord *ems); /* total/available amount of EMS */
boolean EMSinfo(struct EMSrecord *ems); /* EMS version and total/available pages */
int EMSwarmbootprep(void); /* Prep EMS hardware for warm boot: LIM EMS 4.0 */
#endif /* IBM_HEADER */